# demo02_oop_extends.py
class Role:
    def __init__(self, name, weapon):
        self.name = name
        self.weapon = weapon
    def show_me(self):
        print("我是%s   用 %s 武器" % (self.name, self.weapon))
class Warrior(Role):  # class 类名(父类名):
    def __init__(self, name, weapon, ride):
        # 调用父类(Role)的__init__函数
        Role.__init__(self, name, weapon)
        self.ride = ride
    def attack(self, target):  # 编写子类特有的方法
        print("我是%s, 我在和 %s 进行肉搏" % (self.name, target))
class Mage(Role):
    def attack(self, target):
        print("我是%s, 我在和 %s 进行远程消耗" % (self.name, target))
if __name__ == '__main__':
    lb = Warrior("吕布", "方天画戟", "赤兔马")  # 调用子类的__init__函数
    # name="吕布"  weapon="方天画戟"   ride="赤兔马"
    print(lb.name, lb.weapon, lb.ride)  # 吕布 方天画戟 赤兔马

    lb.show_me()  # 调用父类的show_me方法
    lb.attack("貂蝉")  # 调用子类自己的方法
    km = Mage("诸葛亮", "羽扇")  # name="诸葛亮"  weapon="羽扇"
    km.show_me()  # 调用父类的show_me方法
    km.attack("黄月英")  # 调用子类自己的方法


